home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tangosources.lha / scroll_sources / sinescroll.s < prev   
Encoding:
Text File  |  2008-06-03  |  7.9 KB  |  277 lines

  1.  
  2.     section ste,code_c
  3.     incdir    df1:
  4.     opt c-
  5.     include gamemacros
  6.     
  7.     
  8.     killsys
  9.  
  10.     move.l    #$70000,a0
  11.     move.l    #10240,d2
  12. cloop:
  13.     clr.l    (a0)+
  14.     dbf        d2,cloop
  15.  
  16.     move.l    #$60000,a0
  17.     move.l    #10240,d2
  18. dloop:
  19.     clr.l    (a0)+
  20.     dbf        d2,dloop
  21.  
  22.     move.l    #newcop,$dff080
  23.     lea        custom,a5
  24. mouse:
  25.     move.l    vposr(a5),d0            
  26.     and.l    #$1ff00,d0
  27.     cmp.l    #$00100,d0    
  28.     bne.s    mouse
  29.     move.w    #$fff,$dff180
  30.     bsr        clear
  31.     bsr        scroller
  32.     bsr        copy
  33.     move.w    #$0,$dff180
  34.     btst    #6,$bfe001
  35.     bne.s    mouse
  36.     ressys
  37.     clr.l    d0
  38.     rts
  39.     
  40.  
  41. *****************************************************************************
  42. *                          BLIT SHIFT SCROLL ROUTINE                            *
  43. *****************************************************************************
  44.  
  45. scroller:
  46.     move.l    #-1,bltafwm(a5)
  47.     tst.l    scrolled                ;have we scrolled 16 pixels?
  48.     bne        scrollon                ;no
  49.     move.l    #15,scrolled            ;yes, reset
  50.     clr.l    d6
  51.     lea        table(pc),a4
  52.     move.l    scrptr(pc),a3
  53.     move.b    (a3),d6
  54.     cmp.b    #255,d6                    ;end of scroll text?
  55.     bne.s    anotover                ;no
  56.     move.l    #scrolltext,scrptr
  57.     rts
  58. anotover:
  59.     sub.b    #32,d6                    ;convert
  60.     add.w    d6,d6
  61.     move.w    (a4,d6),d6                ;got letter
  62.     add.l    #1,scrptr                ;update
  63.     blitwait
  64.     move.l    #$09f00000,bltcon0(a5)    ;minterm d=a
  65.     move.l    #font,a0
  66.     add.l    d6,a0
  67.     move.l    a0,bltapth(a5)
  68.     move.w    #38,bltamod(a5)
  69.     move.w    #46,bltdmod(a5)            ;screen is 2 words bigger
  70.     move.l    #$70000,bltdpth(a5)
  71.     move.w    #16<<6!1,bltsize(a5)
  72. scrollon:    
  73.     blitwait
  74.     move.w    #0,bltamod(a5)
  75.     move.w    #0,bltdmod(a5)
  76.     move.l    #$70000,bltdpth(a5)        ;coarse scroller
  77.     move.l    #$70002,bltapth(a5)
  78.     move.l    #$f9f00000,bltcon0(a5)
  79.     move.w    #16<<6!22,bltsize(a5)
  80.     sub.l    #1,scrolled
  81.     rts
  82.  
  83. copy:
  84.     lea        bltapth(a5),a1            ;source
  85.     lea        bltdpth(a5),a2            ;dest
  86.     lea        bltbpth(a5),a3            ;dest
  87.     lea        bltsize(a5),a4            ;blitsize
  88.     lea        bltcon0(a5),a6
  89.     move.w    #$3fe,d1
  90.     move.w    #22,d6
  91.     move.w    #46,d2                    ;modulo
  92.     move.w    #16<<6!1,d3                ;bltsize
  93.     move.l    #$0dfc0000,d7
  94.     move.l    #$70000,d4
  95.     move.l    screen_base,d5
  96.     move.l    #-1,bltalwm(a5)
  97.     move.w    d2,bltamod(a5)
  98.     move.w    d2,bltbmod(a5)
  99.     move.w    d2,bltdmod(a5)
  100.     add.w    #12,sinptr+2
  101.     and.l    d1,sinptr
  102.     lea        sintab(pc),a0
  103.     add.l    sinptr,a0
  104.     lea        bltafwm(a5),a5
  105. brloop:
  106.     move.w    #$8000,d1                ;mask
  107. coploop:
  108.     rept    16
  109.     move.w    d1,(a5)
  110.     add.w    (a0),d5
  111.     move.l    d4,(a1)                    ;source
  112.     move.l    d5,(a2)                    ;dest d
  113.     move.l    d5,(a3)                    ;dest b
  114.     sub.w    (a0)+,d5
  115.     move.l    d7,(a6)
  116.     move.w    d3,(a4)                    ;blitsize
  117.     ror.w    d1
  118.     endr
  119.     addq.w    #2,d4                    ;next along
  120.     addq.w    #2,d5                    ;next along
  121.     dbf        d6,brloop
  122.     lea        custom,a5
  123.     rts
  124.  
  125.  
  126. clear:
  127.     eor.w    #$4000,a1l+2
  128.     eor.w    #$4000,screen_base+2
  129.     move.l    screen_base,a1                    ; dst
  130.     blitwait
  131.     move.l    #$01f00000,bltcon0(a5)
  132.     move.l    #-1,bltafwm(A5)
  133.     move.w    #0,bltdmod(a5)
  134.     move.l    a1,bltdpth(A5)
  135.     move.w    #117*64+24,bltsize(a5)
  136.     Movem.l    a0-a6/d0-d7,-(a7)        
  137.     Movem.l    RegFiller(pc),a1-a6/d0-d7
  138.     move.l    screen_base,a0
  139.     add.w    #10368,a0
  140.     Rept    93                
  141.     Movem.l    a1-a6/d0-d7,-(a0)
  142.     Endr                    
  143.     Movem.l    (a7)+,a0-a6/d0-d7
  144.     Rts
  145. RegFiller
  146.     Dcb.l    16,0
  147.  
  148.     
  149. scrolled:
  150.     dc.l    15
  151. scrptr:
  152.     dc.l    scrolltext
  153. scrolltext:
  154.     DC.B    ' TANGO SAYS GO TO THE SHOP ASLAM OR ILL KICK YOUR FUKIN HEAD IN!'
  155.     DC.B    ' OK??    '
  156.     DC.B    255
  157.     even
  158.  
  159.  
  160. *****************************************************************************
  161. *                                NEW COPPER LIST                                *
  162. *****************************************************************************
  163.  
  164. newcop:
  165.     cmove    bpl1mod,2    
  166.     cmove    bpl2mod,2    
  167.     cmove    bplcon0,$1200
  168.     cmove    diwstrt,$2c81
  169.     cmove    diwstop,$2cc1
  170.     cmove    ddfstrt,$28
  171.     cmove    ddfstop,$d8
  172.     cmove    bpl1pth,$0007
  173. a1l    cmove    bpl1ptl,$1000
  174.     end_copper
  175.  
  176.  
  177.  
  178.     
  179. *****************************************************************************
  180. *                                CHARACTER TABLE                                *
  181. *****************************************************************************
  182.  
  183. table:
  184.     dc.w    0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
  185.     dc.w    (16*40),2+(16*40),4+(16*40),6+(16*40),8+(16*40),10+(16*40)
  186.     dc.w    12+(16*40),14+(16*40),16+(16*40),18+(16*40),20+(16*40),22+(16*40)
  187.     dc.w    24+(16*40),26+(16*40),28+(16*40),30+(16*40),32+(16*40),34+(16*40)
  188.     dc.w    36+(16*40),38+(16*40)
  189.     dc.w    (16*80),2+(16*80),4+(16*80),6+(16*80),8+(16*80),10+(16*80)
  190.     dc.w    12+(16*80),14+(16*80),16+(16*80),18+(16*80),20+(16*80),22+(16*80)
  191.     dc.w    24+(16*80),26+(16*80),28+(16*80),30+(16*80),32+(16*80),34+(16*80)
  192.     dc.w    36+(16*80),38+(16*80)
  193.     even
  194.  
  195. screen_base:
  196.     dc.l    $71000
  197. sinptr:
  198.     dc.l    sintab
  199. sintab:    
  200.     rept    3
  201.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  202.     dc.w    200*48,199*48,199*48,199*48,199*48,199*48,199*48,198*48
  203.     dc.w    198*48,198*48,198*48,197*48,197*48,197*48,196*48,196*48
  204.     dc.w    196*48,195*48,195*48,195*48,194*48,194*48,193*48,193*48
  205.     dc.w    192*48,192*48,191*48,191*48,190*48,190*48,189*48,189*48
  206.     dc.w    188*48,188*48,187*48,186*48,186*48,185*48,184*48,184*48
  207.     dc.w    183*48,182*48,182*48,181*48,180*48,180*48,179*48,178*48
  208.     dc.w    177*48,177*48,176*48,175*48,174*48,173*48,172*48,172*48
  209.     dc.w    171*48,170*48,169*48,168*48,167*48,166*48,165*48,164*48
  210.     dc.w    163*48,162*48,162*48,161*48,160*48,159*48,158*48,157*48
  211.     dc.w    156*48,155*48,153*48,152*48,151*48,150*48,149*48,148*48
  212.     dc.w    147*48,146*48,145*48,144*48,143*48,142*48,141*48,139*48
  213.     dc.w    138*48,137*48,136*48,135*48,134*48,133*48,131*48,130*48
  214.     dc.w    129*48,128*48,127*48,125*48,124*48,123*48,122*48,121*48
  215.     dc.w    120*48,118*48,117*48,116*48,115*48,113*48,112*48,111*48
  216.     dc.w    110*48,109*48,107*48,106*48,105*48,104*48,102*48,101*48
  217.     dc.w    100*48,99*48,98*48,96*48,95*48,94*48,93*48,91*48
  218.     dc.w    90*48,89*48,88*48,87*48,85*48,84*48,83*48,82*48
  219.     dc.w    80*48,79*48,78*48,77*48,76*48,75*48,73*48,72*48
  220.     dc.w    71*48,70*48,69*48,67*48,66*48,65*48,64*48,63*48
  221.     dc.w    62*48,61*48,59*48,58*48,57*48,56*48,55*48,54*48
  222.     dc.w    53*48,52*48,51*48,50*48,49*48,48*48,46*48,45*48
  223.     dc.w    44*48,43*48,42*48,41*48,40*48,39*48,38*48,38*48
  224.     dc.w    37*48,36*48,35*48,34*48,33*48,32*48,31*48,30*48
  225.     dc.w    29*48,28*48,28*48,27*48,26*48,25*48,24*48,23*48
  226.     dc.w    23*48,22*48,21*48,20*48,20*48,19*48,18*48,18*48
  227.     dc.w    17*48,16*48,16*48,15*48,14*48,14*48,13*48,12*48
  228.     dc.w    12*48,11*48,11*48,10*48,10*48,9*48,9*48,8*48
  229.     dc.w    8*48,7*48,7*48,6*48,6*48,5*48,5*48,5*48
  230.     dc.w    4*48,4*48,4*48,3*48,3*48,3*48,2*48,2*48
  231.     dc.w    2*48,2*48,1*48,1*48,1*48,1*48,1*48,1*48
  232.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  233.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  234.     dc.w    0*48,1*48,1*48,1*48,1*48,1*48,1*48,2*48
  235.     dc.w    2*48,2*48,2*48,3*48,3*48,3*48,4*48,4*48
  236.     dc.w    4*48,5*48,5*48,5*48,6*48,6*48,7*48,7*48
  237.     dc.w    8*48,8*48,9*48,9*48,10*48,10*48,11*48,11*48
  238.     dc.w    12*48,12*48,13*48,14*48,14*48,15*48,16*48,16*48
  239.     dc.w    17*48,18*48,18*48,19*48,20*48,20*48,21*48,22*48
  240.     dc.w    23*48,23*48,24*48,25*48,26*48,27*48,28*48,28*48
  241.     dc.w    29*48,30*48,31*48,32*48,33*48,34*48,35*48,36*48
  242.     dc.w    37*48,38*48,38*48,39*48,40*48,41*48,42*48,43*48
  243.     dc.w    44*48,45*48,47*48,48*48,49*48,50*48,51*48,52*48
  244.     dc.w    53*48,54*48,55*48,56*48,57*48,58*48,59*48,61*48
  245.     dc.w    62*48,63*48,64*48,65*48,66*48,67*48,69*48,70*48
  246.     dc.w    71*48,72*48,73*48,75*48,76*48,77*48,78*48,79*48
  247.     dc.w    80*48,82*48,83*48,84*48,85*48,87*48,88*48,89*48
  248.     dc.w    90*48,91*48,93*48,94*48,95*48,96*48,98*48,99*48
  249.     dc.w    100*48,101*48,102*48,104*48,105*48,106*48,107*48,109*48
  250.     dc.w    110*48,111*48,112*48,113*48,115*48,116*48,117*48,118*48
  251.     dc.w    120*48,121*48,122*48,123*48,124*48,125*48,127*48,128*48
  252.     dc.w    129*48,130*48,131*48,133*48,134*48,135*48,136*48,137*48
  253.     dc.w    138*48,139*48,141*48,142*48,143*48,144*48,145*48,146*48
  254.     dc.w    147*48,148*48,149*48,150*48,151*48,152*48,154*48,155*48
  255.     dc.w    156*48,157*48,158*48,159*48,160*48,161*48,162*48,162*48
  256.     dc.w    163*48,164*48,165*48,166*48,167*48,168*48,169*48,170*48
  257.     dc.w    171*48,172*48,172*48,173*48,174*48,175*48,176*48,177*48
  258.     dc.w    177*48,178*48,179*48,180*48,180*48,181*48,182*48,182*48
  259.     dc.w    183*48,184*48,184*48,185*48,186*48,186*48,187*48,188*48
  260.     dc.w    188*48,189*48,189*48,190*48,190*48,191*48,191*48,192*48
  261.     dc.w    192*48,193*48,193*48,194*48,194*48,195*48,195*48,195*48
  262.     dc.w    196*48,196*48,196*48,197*48,197*48,197*48,198*48,198*48
  263.     dc.w    198*48,198*48,199*48,199*48,199*48,199*48,199*48,199*48
  264.     dc.w    200*48,200*48,200*48,200*48,200*48,200*48,200*48,200*48
  265.     endr
  266.     
  267.  
  268. *****************************************************************************
  269. *                                    BINARIES                                *
  270. *****************************************************************************
  271.  
  272. font:
  273.     incbin    gfx/font.bin
  274.     even
  275.     
  276.     
  277.